package com.itcast.demo_one.kotlin

fun main(){
    // 使用主构造函数创建对象
    val man1 = Person5("张三")
    man1.show1()
    // 使用次构造函数创建对象
    val man2 = Person5("李四", 18)
    man2.show2()
    // 使用次构造函数创建对象
    val man3 = Person5("王五", 28, "男")
    man3.show3()
}

// 主构造函数
class Person5(var name: String) {
    var age: Int = 0
    var sex: String = ""
    // 次构造函数1，因为有主构造函数，所以次构造函数必须直接或间接委托给主构造函数，使用:this()
    constructor(name: String, age: Int) : this(name) {
        this.age = age
    }
    // 次构造函数2
    constructor(name: String, age: Int, sex: String):this(name) {
        this.age = age
        this.sex = sex
    }
    fun show1() {
        println("姓名：$name")
    }
    fun show2(){
        println("姓名：$name,年龄：$age")
    }
    fun show3(){
        println("姓名：$name,年龄：$age,性别：$sex")
    }

}